This application is related to the following commonly-assigned, copending applications entitled: INTERNAL RULES CHECKER Ser. No. 09/304,959 and INTERLEAVED ACCESS TO ADDRESS TABLE IN NETWORK SWITCHING SYSTEM Ser. No. 09/305,662.
The present invention relates to network communications and more particularly, to generating data forwarding decisions in a network switch.
In computer networks, a plurality of network stations are interconnected via a communications medium. For example, Ethernet is a commonly used local area network scheme in which multiple stations are connected to a single shared serial data path. These stations often communicate with a switch located between the shared data path and the stations connected to that path. Typically, the switch controls the communication of data packets on the network.
The network switch includes switching logic for receiving and forwarding frames to the appropriate destinations. One arrangement for generating a frame forwarding decision uses a direct addressing scheme, where the network switch includes a fixed address table storing switching logic for the destination addresses.
For example, a frame may be received by the network switch with header information indicating the source address and destination address of the frame. The switching logic accesses the fixed address table using the source address and destination address as lookups to find the appropriate frame forwarding information. The switch then uses this information and sends the frame to the appropriate port(s).
When all of the stations connected to the network are simultaneously operating, packet traffic on the shared serial path can be heavy with little time between packets. Additionally, due to increased network throughput requirements, increasing the speed with which data is transmitted to its destination is crucial to the overall operation of the switch.
One drawback with typical prior art systems employing fixed address tables is that the decision making logic processes data frames one frame at a time. That is, when multiple frames are received by the switch, the decision making logic processes the header information from the first frame and generates the frame forwarding information. The decision making logic then starts the process over again for the second frame. With increased network throughput requirements, such a processing arrangement often results in an unacceptable delay in forwarding frames to their respective destinations.
There exists a need for a switching device that includes a decision making engine designed to support networks requiring a high data throughput.
There is also a need for a method for making data forwarding decisions in a network switch supporting high data throughput.
These and other needs are met by the present invention, where a multiport switch includes a decision making engine used to make frame forwarding decisions. The decision making engine is designed in pipelined, modular fashion so that multiple frames may be processed simultaneously.
According to one aspect of the invention, a multiport switch is configured to control the communication of data frames between stations. The switch includes a programmable address table for storing address information and data forwarding information. The switch also includes a decision making engine configured to search the programmable address table and generate data forwarding information for a data frame. The decision making engine includes a plurality of logic engines with each of the logic engines configured to process a different respective data frame simultaneously with each other logic engine. Additionally, at least a first and a second logic engine require access to the programmable address table. The switch further includes an arbitration circuit configured to enable the first and second logic engines to alternately access the programmable address table.
Another aspect of the present invention provides a method for generating data forwarding information in a multiport switch that controls communication of data frames between stations. The method includes receiving a data frame and processing the data frame using a decision making engine. The decision making engine includes a programmable address table configured to store address information and data forwarding information. The decision making engine also includes a plurality of logic engines with each of the logic engines configured to process a different respective data frame simultaneously with each other logic engine. Additionally, at least a first and a second logic engine require access to the programmable address table. The method further includes arbitrating access to the programmable address table and generating the data forwarding information.
Other advantages and features of the present invention will become readily apparent to those skilled in this art from the following detailed description. The embodiments shown and described provide illustration of the best mode contemplated for carrying out the invention. The invention is capable of modifications in various obvious respects, all without departing from the invention. Accordingly, the drawings are to be regarded as illustrative in nature, and not as restrictive.